package prh25.biblioteca.entity;



import java.sql.Date;
import java.sql.Timestamp;


import prh25.biblioteca.entity.dao.AlunoDAO;
import prh25.biblioteca.entity.dao.ArquivoDAO;
import prh25.biblioteca.entity.dao.CoordenadorDAO;
import prh25.biblioteca.entity.dao.DAOFactory;
import prh25.biblioteca.entity.dao.DocumentoDAO;
import prh25.biblioteca.entity.dao.EnderecoDAO;
import prh25.biblioteca.entity.dao.ProfessorDAO;
import prh25.biblioteca.entity.dao.ProjetoPesquisaDAO;
import prh25.biblioteca.entity.dao.RevisorDAO;
import prh25.biblioteca.entity.dao.UsuarioExternoDAO;
import prh25.biblioteca.entity.dao.hibernate.HibernateUtil;

public class Testa {
	
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	
        //Aluno
		
		Aluno aluno = new Aluno();
		aluno.setNome("Wilson Andrade");
		aluno.setCurso("Computacao");
		aluno.setEmail("wilsonufcg@gmail.com");
		aluno.setLogin("wilson");
		aluno.setMatricula("20821021");
		aluno.setSenha("123");
		aluno.setTipo("Aluno");
		aluno.setDataNascimento(new Date(System.currentTimeMillis()));
		
		//Coordenador
		
		Coordenador coordenador = new Coordenador();
		coordenador.setEmail("coordenador@gmail.com");
		coordenador.setLogin("antonio");
		coordenador.setNome("Antonio francisco");
		coordenador.setSenha("coor123");
		coordenador.setTipo("Coordenador");
		coordenador.setDataNascimento(new Date(System.currentTimeMillis()));
		
		//Professor
		
		Professor professor = new Professor();
		professor.setEmail("fabio@gmail.com");
		professor.setLogin("fabio");
		professor.setNome("Fabio jose");
		professor.setSenha("prof123");
		professor.setTipo("Professor");
		professor.setCurso("Computacao");
		professor.setDataNascimento(new Date(System.currentTimeMillis()));
		
		
		//Revisor
		Revisor revisor = new Revisor();
		revisor.setEmail("mario@gmail.com");
		revisor.setLogin("mario");
		revisor.setNome("Mario Santos");
		revisor.setSenha("rev123");
		revisor.setTipo("Revisor");
		revisor.setDataNascimento(new Date(System.currentTimeMillis()));
		
		
		
		//UsuarioExterno
		
		UsuarioExterno usuarioExterno = new UsuarioExterno();
		usuarioExterno.setEmail("pedro@gmail.com");
		usuarioExterno.setLogin("pedro");
		usuarioExterno.setNome("Pedro paulo");
		usuarioExterno.setSenha("usuEx123");
		usuarioExterno.setTipo("UsuarioExterno");
		usuarioExterno.setDataNascimento(new Date(System.currentTimeMillis()));
		
		//Endereco Aluno
		Endereco enderecoAluno = new Endereco();
		enderecoAluno.setBairro("Bodocongo");
		enderecoAluno.setCidade("Campina Grande");
		enderecoAluno.setComplemento("Ap 303");
		enderecoAluno.setEstado("Paraiba");
		enderecoAluno.setPais("Brasil");
		enderecoAluno.setRua("Rodrigues Alves");
		enderecoAluno.setTelCelular("123456");
		enderecoAluno.setTelResidencial("7891011");
		aluno.setEndereco(enderecoAluno);
		
		//Endereco Professor
		Endereco enderecoProfessor = new Endereco();
		enderecoProfessor.setBairro("Bodocongo 2");
		enderecoProfessor.setCidade("Campina Grande 2");
		enderecoProfessor.setComplemento("Ap 303 2");
		enderecoProfessor.setEstado("Paraiba 2");
		enderecoProfessor.setPais("Brasil 2");
		enderecoProfessor.setRua("Rodrigues Alves 2");
		enderecoProfessor.setTelCelular("123456 2");
		enderecoProfessor.setTelResidencial("7891011 2");
		professor.setEndereco(enderecoProfessor);
		
		//Endereco Coordenador
		Endereco enderecoCoordenador = new Endereco();
		enderecoCoordenador.setBairro("Bodocongo 3");
		enderecoCoordenador.setCidade("Campina Grande 3");
		enderecoCoordenador.setComplemento("Ap 303 3");
		enderecoCoordenador.setEstado("Paraiba 3");
		enderecoCoordenador.setPais("Brasil 3");
		enderecoCoordenador.setRua("Rodrigues Alves 3");
		enderecoCoordenador.setTelCelular("123456 3");
		enderecoCoordenador.setTelResidencial("7891011 3");
		coordenador.setEndereco(enderecoCoordenador);
		
		//Endereco Revisor
		Endereco enderecoRevisor = new Endereco();
		enderecoRevisor.setBairro("Bodocongo 4");
		enderecoRevisor.setCidade("Campina Grande 4");
		enderecoRevisor.setComplemento("Ap 303 4");
		enderecoRevisor.setEstado("Paraiba 4");
		enderecoRevisor.setPais("Brasil 4");
		enderecoRevisor.setRua("Rodrigues Alves 4");
		enderecoRevisor.setTelCelular("123456 4");
		enderecoRevisor.setTelResidencial("7891011 4");
		revisor.setEndereco(enderecoRevisor);
		
		//Endereco UsuarioExterno
		Endereco enderecoUsuarioExterno = new Endereco();
		enderecoUsuarioExterno.setBairro("Bodocongo 5");
		enderecoUsuarioExterno.setCidade("Campina Grande 5");
		enderecoUsuarioExterno.setComplemento("Ap 303 5");
		enderecoUsuarioExterno.setEstado("Paraiba 5");
		enderecoUsuarioExterno.setPais("Brasil 5");
		enderecoUsuarioExterno.setRua("Rodrigues Alves 5");
		enderecoUsuarioExterno.setTelCelular("123456 5");
		enderecoUsuarioExterno.setTelResidencial("7891011 5");
		usuarioExterno.setEndereco(enderecoUsuarioExterno);
		
		
		//Projeto Pesquisa
		ProjetoPesquisa projetoPesquisa = new ProjetoPesquisa();
		projetoPesquisa.setCurso("Computacao");
		projetoPesquisa.setDescricao("Melhor projeto do Brasil");
		projetoPesquisa.setDuracao("7 semanas");
		projetoPesquisa.setNome("Projeto Massa");
		projetoPesquisa.setProfessor(professor);
		projetoPesquisa.setStatus("Em andamento");
		
		
		//Aluno 
		
		aluno.setOrientador(professor);
		aluno.setProjetoPesquisa(projetoPesquisa);
		
		//Documento
		Documento documento = new Documento();
		documento.setAtivo(true);
		documento.setContributor("Maria");
		documento.setCoverage("Nacional");
		documento.setCreator("Jose");
		documento.setDate(new Timestamp(System.currentTimeMillis()));
		documento.setDescription("Documento de teste");
		documento.setFormat(".pdf");
		documento.setIdentifier("docR2");
		documento.setLanguage("Portugues");
		documento.setPublisher("Ricardo");
		documento.setRelation("relation teste");
		documento.setRights("Publico");
		documento.setSource("meuarquivo.pdf");
		documento.setSubject("Teste inicial");
		documento.setTitle("Teste");
		documento.setType("arquivo pdf");
		documento.setRevisor(revisor);
		documento.setUsuario(aluno);
		
		//Arquivo
		Arquivo arquivo = new Arquivo();
		
		documento.setArquivo(arquivo);
		
		
		
		
		
		
		
		
		
		
		AlunoDAO alunoDAO = DAOFactory.DEFAULT.buildAlunoDAO();
		CoordenadorDAO coordenadorDAO = DAOFactory.DEFAULT.buildCoordenadorDAO();
		ProfessorDAO professorDAO = DAOFactory.DEFAULT.buildProfessorDAO();
		RevisorDAO revisorDAO = DAOFactory.DEFAULT.buildRevisorDAO();
		UsuarioExternoDAO usuarioExternoDAO = DAOFactory.DEFAULT.buildUsuarioExternoDAO();
		EnderecoDAO enderecoDAO = DAOFactory.DEFAULT.buildEnderecoDAO();
		ProjetoPesquisaDAO projetoPesquisaDAO = DAOFactory.DEFAULT.buildProjetoPesquisaDAO();
        DocumentoDAO documentoDAO = DAOFactory.DEFAULT.buildDocumentoDAO();
        ArquivoDAO arquivoDAO = DAOFactory.DEFAULT.buildArquivoDAO();
		
		
        //Inicio da transacao
		HibernateUtil.beginTransaction();
		
		arquivoDAO.saveOrUpdate(arquivo);
		
		enderecoDAO.saveOrUpdate(enderecoAluno);
		enderecoDAO.saveOrUpdate(enderecoCoordenador);
		enderecoDAO.saveOrUpdate(enderecoProfessor);
		enderecoDAO.saveOrUpdate(enderecoRevisor);
		enderecoDAO.saveOrUpdate(enderecoUsuarioExterno);
		
		alunoDAO.saveOrUpdate(aluno);
		coordenadorDAO.saveOrUpdate(coordenador);
		professorDAO.saveOrUpdate(professor);
		revisorDAO.saveOrUpdate(revisor);
		usuarioExternoDAO.saveOrUpdate(usuarioExterno);
		
		projetoPesquisaDAO.saveOrUpdate(projetoPesquisa);
		
		documentoDAO.saveOrUpdate(documento);
		
		
		HibernateUtil.commitTransaction();
	}

}
